﻿using System.Collections.Generic;
using RayDen.Library.Components.Surface;
using RayDen.Library.Entity.Scene;

namespace RayDen.Library.Components
{
    public interface IMaterialLibraryBase<TBsdf> : IEnumerable<TBsdf>
        where TBsdf : ISurfaceMaterial
    
    {
        TBsdf GetSurfMat(string name);
        void Populate(MaterialInfo[] mats);
    }

    public interface IMaterialLibrary<TBsdf> : IMaterialLibraryBase<TBsdf> 
        where TBsdf : ISurfaceMaterial
    {
        TBsdf GetSurfMat( int id );

        int GetID(string name);

        void Add(ISurfaceMaterial[] surfMatsToAdd);
        void Merge(ISurfaceMaterial[] mats);
    }
}